package com.java.second_goods.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.java.second_goods.entity.UserCoupon;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;

/**
 * 用户优惠券Mapper接口
 */
@Mapper
public interface UserCouponMapper extends BaseMapper<UserCoupon> {

    /**
     * 查询用户优惠券列表
     *
     * @param userId 用户ID
     * @return 用户优惠券列表
     */
    List<UserCoupon> selectUserCoupons(@Param("userId") Integer userId);

    /**
     * 查询用户未使用的优惠券列表
     *
     * @param userId 用户ID
     * @return 用户优惠券列表
     */
    List<UserCoupon> selectUnusedUserCoupons(@Param("userId") Integer userId);

    /**
     * 查询用户已使用的优惠券列表
     *
     * @param userId 用户ID
     * @return 用户优惠券列表
     */
    List<UserCoupon> selectUsedUserCoupons(@Param("userId") Integer userId);

    /**
     * 查询用户优惠券
     *
     * @param userId 用户ID
     * @param couponId 优惠券ID
     * @return 用户优惠券
     */
    UserCoupon selectUserCoupon(@Param("userId") Integer userId, @Param("couponId") Integer couponId);

    /**
     * 使用优惠券
     *
     * @param userCouponId 用户优惠券ID
     * @param orderId 订单ID
     * @param usedTime 使用时间
     * @return 结果
     */
    int useCoupon(@Param("userCouponId") Integer userCouponId, @Param("orderId") String orderId, @Param("usedTime") Date usedTime);
}